#!/usr/bin/env python3

import common

class Main(common.LkmcCliFunction):
    def __init__(self):
        super().__init__(
            defaults = {
                'print_time': False,
            },
            description='''\
Print the value of a self.env['py'] variable.

This is useful to:

* give dry commands on the README that don't change when we refactor directory structure
* create simple bash scripts that call use self.env['py'] variables

For example, to get the Buildroot output directory for an ARM build, use:

....
./%(prog)s -a arm buildroot_build_dir
....

List all available variables:

....
./%(prog)s
....
''',
        )
        self.add_argument('--type', choices=['input', 'all'], default='all')
        self.add_argument('variable', nargs='?')

    def timed_main(self):
        variable = self.env['variable']
        if variable:
            print(self.env[variable])
        else:
            if self.env['type'] == 'input':
                to_print = self.input_args
            elif self.env['type'] == 'all':
                to_print = self.env
            for key in sorted(to_print):
                print('{}={}'.format(key, self.env[key]))

if __name__ == '__main__':
    Main().cli()
